package com.ryder.petmatediarybackend.module.shop.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 描述：店铺信息VO
 *
 * @author Ryder
 * @version 1.0
 * @since 1.0
 * 更新日期: 2025-10-31
 */
@Data
@Schema(description = "店铺信息视图对象")
public class ShopInfoVO {

    @Schema(description = "店铺ID")
    private Long id;

    @Schema(description = "店铺所属用户ID")
    private Long userId;

    @Schema(description = "店铺名称")
    private String shopName;

    @Schema(description = "店铺类型：1=宠物店 2=宠物医院 3=宠物美容 4=综合")
    private Integer shopType;

    @Schema(description = "店铺类型文本")
    private String shopTypeText;

    @Schema(description = "联系电话")
    private String phone;

    @Schema(description = "店铺地址")
    private String address;

    @Schema(description = "省份")
    private String province;

    @Schema(description = "城市")
    private String city;

    @Schema(description = "区县")
    private String district;

    @Schema(description = "经度")
    private Double longitude;

    @Schema(description = "纬度")
    private Double latitude;

    @Schema(description = "营业时间")
    private String businessHours;

    @Schema(description = "店铺描述")
    private String description;

    @Schema(description = "店铺封面图URL")
    private String coverImage;

    @Schema(description = "门面照片URL列表")
    private List<String> facadeImages;

    @Schema(description = "内部照片URL列表")
    private List<String> interiorImages;

    @Schema(description = "是否有疫苗权限：0=否 1=是")
    private Integer hasVaccinePermission;

    @Schema(description = "状态：1=营业中 2=已打烊 3=审核中 4=已冻结")
    private Integer status;

    @Schema(description = "状态文本")
    private String statusText;

    @Schema(description = "审核状态：0=待审核 1=审核通过 2=审核驳回")
    private Integer auditStatus;

    @Schema(description = "审核状态文本")
    private String auditStatusText;

    @Schema(description = "审核备注")
    private String auditRemark;

    @Schema(description = "审核时间")
    private LocalDateTime auditTime;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
}

